<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>STM32 Sequencer: stm32_seq.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">STM32 Sequencer
   &#160;<span id="projectnumber">v1.6.0</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('stm32__seq_8c.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">stm32_seq.c File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Simple sequencer implementation.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="stm32__seq_8h_source.html">stm32_seq.h</a>&quot;</code><br />
<code>#include &quot;utilities_conf.h&quot;</code><br />
</div>
<p><a href="stm32__seq_8c_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_u_t_i_l___s_e_q___priority__t.html">UTIL_SEQ_Priority_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">structure used to manage task scheduling  <a href="struct_u_t_i_l___s_e_q___priority__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga7af4785dcb8ef602f75b2d8f423010c1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___private__define.html#ga7af4785dcb8ef602f75b2d8f423010c1">UTIL_SEQ_ENTER_CRITICAL_SECTION_IDLE</a>()&#160;&#160;&#160;UTIL_SEQ_ENTER_CRITICAL_SECTION( )</td></tr>
<tr class="memdesc:ga7af4785dcb8ef602f75b2d8f423010c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">macro used to enter the critical section before calling the IDLE function  <a href="group___s_e_q_u_e_n_c_e_r___private__define.html#ga7af4785dcb8ef602f75b2d8f423010c1">More...</a><br /></td></tr>
<tr class="separator:ga7af4785dcb8ef602f75b2d8f423010c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2dcda5eb256d445147b385a8374cc658"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___private__define.html#ga2dcda5eb256d445147b385a8374cc658">UTIL_SEQ_EXIT_CRITICAL_SECTION_IDLE</a>()&#160;&#160;&#160;UTIL_SEQ_EXIT_CRITICAL_SECTION( )</td></tr>
<tr class="memdesc:ga2dcda5eb256d445147b385a8374cc658"><td class="mdescLeft">&#160;</td><td class="mdescRight">macro used to exit the critical section when exiting the IDLE function  <a href="group___s_e_q_u_e_n_c_e_r___private__define.html#ga2dcda5eb256d445147b385a8374cc658">More...</a><br /></td></tr>
<tr class="separator:ga2dcda5eb256d445147b385a8374cc658"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9d782cdb4f3654c8238e9dd3adbabf16"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___private__define.html#ga9d782cdb4f3654c8238e9dd3adbabf16">UTIL_SEQ_NOTASKRUNNING</a>&#160;&#160;&#160;(0xFFFFFFFFU)</td></tr>
<tr class="memdesc:ga9d782cdb4f3654c8238e9dd3adbabf16"><td class="mdescLeft">&#160;</td><td class="mdescRight">define to represent no task running  <a href="group___s_e_q_u_e_n_c_e_r___private__define.html#ga9d782cdb4f3654c8238e9dd3adbabf16">More...</a><br /></td></tr>
<tr class="separator:ga9d782cdb4f3654c8238e9dd3adbabf16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad03df74638c0f274fa22474f034384bf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___private__define.html#gad03df74638c0f274fa22474f034384bf">UTIL_SEQ_NO_BIT_SET</a>&#160;&#160;&#160;(0U)</td></tr>
<tr class="memdesc:gad03df74638c0f274fa22474f034384bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">define to represent no bit set inside uint32_t mapping  <a href="group___s_e_q_u_e_n_c_e_r___private__define.html#gad03df74638c0f274fa22474f034384bf">More...</a><br /></td></tr>
<tr class="separator:gad03df74638c0f274fa22474f034384bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga24e4c1a2fd61c0cbda16ba7f42f1703a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___private__define.html#ga24e4c1a2fd61c0cbda16ba7f42f1703a">UTIL_SEQ_ALL_BIT_SET</a>&#160;&#160;&#160;(~0U)</td></tr>
<tr class="memdesc:ga24e4c1a2fd61c0cbda16ba7f42f1703a"><td class="mdescLeft">&#160;</td><td class="mdescRight">define to represent all bits set inside uint32_t mapping  <a href="group___s_e_q_u_e_n_c_e_r___private__define.html#ga24e4c1a2fd61c0cbda16ba7f42f1703a">More...</a><br /></td></tr>
<tr class="separator:ga24e4c1a2fd61c0cbda16ba7f42f1703a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaf974b4a940fc6a921b3a76344e5c7ed"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___private__define.html#gaaf974b4a940fc6a921b3a76344e5c7ed">UTIL_SEQ_CONF_TASK_NBR</a>&#160;&#160;&#160;(32)</td></tr>
<tr class="memdesc:gaaf974b4a940fc6a921b3a76344e5c7ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">default number of task is default 32 (maximum), can be reduced by redefining in utilities_conf.h  <a href="group___s_e_q_u_e_n_c_e_r___private__define.html#gaaf974b4a940fc6a921b3a76344e5c7ed">More...</a><br /></td></tr>
<tr class="separator:gaaf974b4a940fc6a921b3a76344e5c7ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga13e13f6ac2442ffb667502a9f35df865"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___private__define.html#ga13e13f6ac2442ffb667502a9f35df865">UTIL_SEQ_CONF_PRIO_NBR</a>&#160;&#160;&#160;(2)</td></tr>
<tr class="memdesc:ga13e13f6ac2442ffb667502a9f35df865"><td class="mdescLeft">&#160;</td><td class="mdescRight">default value of priority number.  <a href="group___s_e_q_u_e_n_c_e_r___private__define.html#ga13e13f6ac2442ffb667502a9f35df865">More...</a><br /></td></tr>
<tr class="separator:ga13e13f6ac2442ffb667502a9f35df865"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad3b4f5f14f4f512725984e6da759871c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___private__define.html#gad3b4f5f14f4f512725984e6da759871c">UTIL_SEQ_MEMSET8</a>(dest,  value,  size)&#160;&#160;&#160;UTILS_MEMSET8( dest, value, size )</td></tr>
<tr class="memdesc:gad3b4f5f14f4f512725984e6da759871c"><td class="mdescLeft">&#160;</td><td class="mdescRight">default memset function.  <a href="group___s_e_q_u_e_n_c_e_r___private__define.html#gad3b4f5f14f4f512725984e6da759871c">More...</a><br /></td></tr>
<tr class="separator:gad3b4f5f14f4f512725984e6da759871c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga7dcde6efa35f7c100af9bf4117a4bf12"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___private__function.html#ga7dcde6efa35f7c100af9bf4117a4bf12">SEQ_BitPosition</a> (uint32_t Value)</td></tr>
<tr class="memdesc:ga7dcde6efa35f7c100af9bf4117a4bf12"><td class="mdescLeft">&#160;</td><td class="mdescRight">return the position of the first bit set to 1  <a href="group___s_e_q_u_e_n_c_e_r___private__function.html#ga7dcde6efa35f7c100af9bf4117a4bf12">More...</a><br /></td></tr>
<tr class="separator:ga7dcde6efa35f7c100af9bf4117a4bf12"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaef07a06c105da3570c971633460a8aa5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gaef07a06c105da3570c971633460a8aa5">UTIL_SEQ_Init</a> (void)</td></tr>
<tr class="memdesc:gaef07a06c105da3570c971633460a8aa5"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function initializes the sequencer resources.  <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gaef07a06c105da3570c971633460a8aa5">More...</a><br /></td></tr>
<tr class="separator:gaef07a06c105da3570c971633460a8aa5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga91cceef5931daa30c4ec3a6577c11106"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga91cceef5931daa30c4ec3a6577c11106">UTIL_SEQ_DeInit</a> (void)</td></tr>
<tr class="memdesc:ga91cceef5931daa30c4ec3a6577c11106"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function un-initializes the sequencer resources.  <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga91cceef5931daa30c4ec3a6577c11106">More...</a><br /></td></tr>
<tr class="separator:ga91cceef5931daa30c4ec3a6577c11106"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae047669fe53f205396460fdbd3a5d8f5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gae047669fe53f205396460fdbd3a5d8f5">UTIL_SEQ_Run</a> (<a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> Mask_bm)</td></tr>
<tr class="memdesc:gae047669fe53f205396460fdbd3a5d8f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function requests the sequencer to execute all pending tasks using round robin mechanism. When no task are pending, it calls <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271" title="This function is called by the sequencer in critical section (PRIMASK bit) when.">UTIL_SEQ_Idle()</a>; This function should be called in a while loop in the application.  <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gae047669fe53f205396460fdbd3a5d8f5">More...</a><br /></td></tr>
<tr class="separator:gae047669fe53f205396460fdbd3a5d8f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacb5ddba0d11449d470c840d0bd961c14"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gacb5ddba0d11449d470c840d0bd961c14">UTIL_SEQ_RegTask</a> (<a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> TaskId_bm, uint32_t Flags, void(*Task)(void))</td></tr>
<tr class="memdesc:gacb5ddba0d11449d470c840d0bd961c14"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function registers a task in the sequencer.  <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gacb5ddba0d11449d470c840d0bd961c14">More...</a><br /></td></tr>
<tr class="separator:gacb5ddba0d11449d470c840d0bd961c14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga66de990da4bde412751f15a7622a0da8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66de990da4bde412751f15a7622a0da8">UTIL_SEQ_SetTask</a> (<a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> TaskId_bm, uint32_t Task_Prio)</td></tr>
<tr class="memdesc:ga66de990da4bde412751f15a7622a0da8"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function requests a task to be executed.  <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66de990da4bde412751f15a7622a0da8">More...</a><br /></td></tr>
<tr class="separator:ga66de990da4bde412751f15a7622a0da8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga58bf5ad581a43e749b60a811353af558"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga58bf5ad581a43e749b60a811353af558">UTIL_SEQ_IsSchedulableTask</a> (<a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> TaskId_bm)</td></tr>
<tr class="memdesc:ga58bf5ad581a43e749b60a811353af558"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function checks if a task could be scheduled.  <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga58bf5ad581a43e749b60a811353af558">More...</a><br /></td></tr>
<tr class="separator:ga58bf5ad581a43e749b60a811353af558"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaad482af89f56e87da251f56d98674c02"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gaad482af89f56e87da251f56d98674c02">UTIL_SEQ_PauseTask</a> (<a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> TaskId_bm)</td></tr>
<tr class="memdesc:gaad482af89f56e87da251f56d98674c02"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function prevents a task to be called by the sequencer even when set with <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66de990da4bde412751f15a7622a0da8" title="This function requests a task to be executed.">UTIL_SEQ_SetTask()</a> By default, all tasks are executed by the sequencer when set with <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66de990da4bde412751f15a7622a0da8" title="This function requests a task to be executed.">UTIL_SEQ_SetTask()</a> When a task is paused, it is moved out from the sequencer list.  <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gaad482af89f56e87da251f56d98674c02">More...</a><br /></td></tr>
<tr class="separator:gaad482af89f56e87da251f56d98674c02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa177da1e5c77c8430096356181d12b18"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gaa177da1e5c77c8430096356181d12b18">UTIL_SEQ_IsPauseTask</a> (<a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> TaskId_bm)</td></tr>
<tr class="memdesc:gaa177da1e5c77c8430096356181d12b18"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function allows to know if the task has been put in pause. By default, all tasks are executed by the sequencer when set with <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66de990da4bde412751f15a7622a0da8" title="This function requests a task to be executed.">UTIL_SEQ_SetTask()</a> The exit of the pause shall be done by the function UTIL_SEQ_ResumeTask.  <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gaa177da1e5c77c8430096356181d12b18">More...</a><br /></td></tr>
<tr class="separator:gaa177da1e5c77c8430096356181d12b18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga66f6a7fbff82b6d397ca054bcf9350ec"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66f6a7fbff82b6d397ca054bcf9350ec">UTIL_SEQ_ResumeTask</a> (<a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> TaskId_bm)</td></tr>
<tr class="memdesc:ga66f6a7fbff82b6d397ca054bcf9350ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function allows again a task to be called by the sequencer if set with <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66de990da4bde412751f15a7622a0da8" title="This function requests a task to be executed.">UTIL_SEQ_SetTask()</a> This is used in relation with <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gaad482af89f56e87da251f56d98674c02" title="This function prevents a task to be called by the sequencer even when set with UTIL_SEQ_SetTask() By ...">UTIL_SEQ_PauseTask()</a>  <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66f6a7fbff82b6d397ca054bcf9350ec">More...</a><br /></td></tr>
<tr class="separator:ga66f6a7fbff82b6d397ca054bcf9350ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga20f607dcbe03ca04f5c56a47e3cc846c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga20f607dcbe03ca04f5c56a47e3cc846c">UTIL_SEQ_SetEvt</a> (<a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> EvtId_bm)</td></tr>
<tr class="memdesc:ga20f607dcbe03ca04f5c56a47e3cc846c"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sets an event that is waited with <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga3546ca66266d5cc956741505318723a2" title="This function waits for a specific event to be set. The sequencer loops UTIL_SEQ_EvtIdle() until the ...">UTIL_SEQ_WaitEvt()</a>  <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga20f607dcbe03ca04f5c56a47e3cc846c">More...</a><br /></td></tr>
<tr class="separator:ga20f607dcbe03ca04f5c56a47e3cc846c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2b48c77f677158e69ff072f7c05cded4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga2b48c77f677158e69ff072f7c05cded4">UTIL_SEQ_ClrEvt</a> (<a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> EvtId_bm)</td></tr>
<tr class="memdesc:ga2b48c77f677158e69ff072f7c05cded4"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function may be used to clear the event before calling <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga3546ca66266d5cc956741505318723a2" title="This function waits for a specific event to be set. The sequencer loops UTIL_SEQ_EvtIdle() until the ...">UTIL_SEQ_WaitEvt()</a> This API may be useful when the <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga20f607dcbe03ca04f5c56a47e3cc846c" title="This function sets an event that is waited with UTIL_SEQ_WaitEvt()">UTIL_SEQ_SetEvt()</a> is called several time to notify the same event. Due to Software Architecture where the timings are hard to control, this may be an unwanted case.  <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga2b48c77f677158e69ff072f7c05cded4">More...</a><br /></td></tr>
<tr class="separator:ga2b48c77f677158e69ff072f7c05cded4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3546ca66266d5cc956741505318723a2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga3546ca66266d5cc956741505318723a2">UTIL_SEQ_WaitEvt</a> (<a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> EvtId_bm)</td></tr>
<tr class="memdesc:ga3546ca66266d5cc956741505318723a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function waits for a specific event to be set. The sequencer loops <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga6bd90dbfc7e3515391128d1ca1739c17" title="This function loops until the waited event is set.">UTIL_SEQ_EvtIdle()</a> until the event is set When called recursively, it acts as a First in / Last out mechanism. The sequencer waits for the last event requested to be set even though one of the already requested event has been set.  <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga3546ca66266d5cc956741505318723a2">More...</a><br /></td></tr>
<tr class="separator:ga3546ca66266d5cc956741505318723a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8d6c2fd6aac8b833a25602ec4b8c5fc7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga8d6c2fd6aac8b833a25602ec4b8c5fc7">UTIL_SEQ_IsEvtPend</a> (void)</td></tr>
<tr class="memdesc:ga8d6c2fd6aac8b833a25602ec4b8c5fc7"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function returns whether the waited event is pending or not It is useful only when the <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga6bd90dbfc7e3515391128d1ca1739c17" title="This function loops until the waited event is set.">UTIL_SEQ_EvtIdle()</a> is overloaded by the application. In that case, when the low power mode needs to be executed, the application shall first check whether the waited event is pending or not. Both the event checking and the low power mode processing should be done in critical section.  <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga8d6c2fd6aac8b833a25602ec4b8c5fc7">More...</a><br /></td></tr>
<tr class="separator:ga8d6c2fd6aac8b833a25602ec4b8c5fc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6bd90dbfc7e3515391128d1ca1739c17"><td class="memItemLeft" align="right" valign="top">__WEAK void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga6bd90dbfc7e3515391128d1ca1739c17">UTIL_SEQ_EvtIdle</a> (<a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> TaskId_bm, <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> EvtWaited_bm)</td></tr>
<tr class="memdesc:ga6bd90dbfc7e3515391128d1ca1739c17"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function loops until the waited event is set.  <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga6bd90dbfc7e3515391128d1ca1739c17">More...</a><br /></td></tr>
<tr class="separator:ga6bd90dbfc7e3515391128d1ca1739c17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5efb8394fc5244b650c8cc8f642e6271"><td class="memItemLeft" align="right" valign="top">__WEAK void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271">UTIL_SEQ_Idle</a> (void)</td></tr>
<tr class="memdesc:ga5efb8394fc5244b650c8cc8f642e6271"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is called by the sequencer in critical section (PRIMASK bit) when.  <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271">More...</a><br /></td></tr>
<tr class="separator:ga5efb8394fc5244b650c8cc8f642e6271"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga373387b03a48559d58eacb919f44a799"><td class="memItemLeft" align="right" valign="top">__WEAK void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga373387b03a48559d58eacb919f44a799">UTIL_SEQ_PreIdle</a> (void)</td></tr>
<tr class="memdesc:ga373387b03a48559d58eacb919f44a799"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is called by the sequencer outside critical section just before calling <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271" title="This function is called by the sequencer in critical section (PRIMASK bit) when.">UTIL_SEQ_Idle( )</a> <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga373387b03a48559d58eacb919f44a799" title="This function is called by the sequencer outside critical section just before calling UTIL_SEQ_Idle( ...">UTIL_SEQ_PreIdle()</a> is considered as the last task executed before calling <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271" title="This function is called by the sequencer in critical section (PRIMASK bit) when.">UTIL_SEQ_Idle( )</a> In case a task or an event is set from an interrupt handler just after <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga373387b03a48559d58eacb919f44a799" title="This function is called by the sequencer outside critical section just before calling UTIL_SEQ_Idle( ...">UTIL_SEQ_PreIdle()</a> is called, <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271" title="This function is called by the sequencer in critical section (PRIMASK bit) when.">UTIL_SEQ_Idle()</a> will not be called.  <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga373387b03a48559d58eacb919f44a799">More...</a><br /></td></tr>
<tr class="separator:ga373387b03a48559d58eacb919f44a799"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga481b45c409e4d8180c64efdef67daa7f"><td class="memItemLeft" align="right" valign="top">__WEAK void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga481b45c409e4d8180c64efdef67daa7f">UTIL_SEQ_PostIdle</a> (void)</td></tr>
<tr class="memdesc:ga481b45c409e4d8180c64efdef67daa7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is called by the sequencer outside critical section either.  <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga481b45c409e4d8180c64efdef67daa7f">More...</a><br /></td></tr>
<tr class="separator:ga481b45c409e4d8180c64efdef67daa7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Simple sequencer implementation. </p>
<dl class="section author"><dt>Author</dt><dd>MCD Application Team</dd></dl>
<dl class="section attention"><dt>Attention</dt><dd></dd></dl>
<h2><center>&copy; Copyright (c) 2019 STMicroelectronics. All rights reserved.</center></h2>
<p>This software component is licensed by ST under BSD 3-Clause license, the "License"; You may not use this file except in compliance with the License. You may obtain a copy of the License at: opensource.org/licenses/BSD-3-Clause </p>

<p class="definition">Definition in file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="stm32__seq_8c.html">stm32_seq.c</a></li>
    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
  </ul>
</div>
</body>
</html>
